1. Technical Field
The present invention relates to a method and apparatus for controlling a CPU, more particularly to a CPU control technology for improving application processing speed and improving power consumption in an embedded system.
2. Description of the Related Art
An important goal of research in mobile systems such as smart phones and tablet computers is to reduce power consumption while maintaining the level of performance of the applications.
Recently, as applications grow in complexity and require fast processing, the performance of hardware such as CPU's, GPU's, and RAM is likewise increasing to support such requirements. However, such requirements may increase power consumption and may result in shorter battery life.
To improve power consumption, many Android-based smart devices adopt Dynamic Voltage and Frequency Scaling (DVFS) technology.
DVFS is a technique of reducing power consumption by reducing CPU frequency and voltage. Since the power consumed by a CPU is proportion to the CPU frequency, DVFS can reduce the power consumption of the CPU by reducing the frequency of the CPU.
However, reducing the CPU frequency also means reducing the processing speed and thus results in slower reaction times for interactive applications.
Generally, the ‘response time’ refers to the time between a user's input and the system's reaction. Many applications that are run on a smart device may employ a user interface (UI) as an interactive application.
Other examples of interactive applications include games, web browsers, image editors, etc.
In an interactive application, the reaction time is a very important factor. Although it may be different for each user, there have been research results that indicate that a typical user feels inconvenienced when the reaction time exceeds 150 ms.
Thus, it is highly important that the reaction time stay within this threshold time.
Also, since a smart device provides multi-tasking functionality, the interactive application may be run simultaneously with several background applications.
In such an environment, the interactive application and the background applications have to share a limited amount of CPU resources, which makes it even more difficult for the interactive application to meet the threshold for the reaction time.
A CPU scheduler serves to distribute the CPU resources to tasks that are running, and as such, has a great impact on the performances of the tasks.
One example of a CPU scheduler, the Completely Fair Scheduler (CFS), is a default scheduler that has been used since Linux Kernel 2.6.23. The CFS was designed with the goal of ensuring fairness to the tasks that are running and applies the same processing weight on all applications running on an Android-based smart device.
Thus, when the CFS is used, a problem may occur of the interactive application showing a slow reaction time when the interactive application is running concurrently with background applications.
Thus, the DVFS technology based on CPU loads as found in the related art can cause in an inefficient increase in CPU frequency when there is a high CPU load on the background applications, resulting in wasteful power consumption, and can provide a slow reaction time when an interactive application is running if the CPU frequency is not quickly increased.